#include "struct.h"
#include "function.h"

/**
 * @brief 用尾插的方法，在链表中插入图书
 * 
 * @param list 链表
 * @param book 书籍结构体
 * @return true 成功插入
 * @return false 插入失败
 */

bool addbook_func(p_node list, Book book)
{
    //为新节点申请内存
    p_node new_node = calloc(1, sizeof(node_t));
    //判断是否申请成功
    if(new_node == NULL)
    {
        printf("为新节点申请内存失败\n");
        return false;
    }

    //赋值：将新节点存入图书的信息
    new_node->data = book;
    new_node->next = NULL;

    //尾插
    //链表中没有数据的情况
    if(list->next == NULL && list->prev == NULL)
    {
        list->next = new_node;
        new_node->prev = list;
    }
    //不是空链表的情况
    else
    {
        p_node current = list;
        //找到链表的尾节点
        while(current->next != NULL)
        {
            current = current->next;
        }

        //把新节点连接到尾节点后
        current->next = new_node;
        new_node->prev = current;
    }

    list->count ++;         //节点个数加一

    return true;

}